﻿//面试题 16.06.最小差
//给定两个整数数组a和b，计算具有最小差绝对值的一对数值（每个数组中取一个值），并返回该对数值的差



class Solution {
public:
    int smallestDifference(vector<int>& a, vector<int>& b)
    {
        sort(a.begin(), a.end());
        sort(b.begin(), b.end());

        int j = 0, i = 0;
        int n = a.size(), m = b.size();
        long ans = LONG_MAX;
        while (i < n && j < m)
        {
            if (a[i] != b[j])
            {
                ans = min(ans, abs((long)a[i] - (long)b[j]));
                a[i] > b[j] ? j++ : i++;
            }
            else
            {
                return 0;
            }
        }
        return ans;
    }
};